#include "led.h"
#include <QDebug>
#include <QFile>

LED::LED()
{
    /* 开发板的LED控制接口 */
    file.setFileName("/sys/class/leds/gpioled_red/brightness");
    if (!file.exists())
        emit updateLEDButtonText("未获取到LED设备！");
    else
        emit updateLEDButtonText("获取到LED设备！");
    /* 获取LED的状态 */
    getLedState();
}
bool LED::getLedState()
{
    /* 如果文件不存在，则返回 */
    if (!file.exists())
        return false;
    //如果文件无法以读写模式打开 则显示错误
    if(!file.open(QIODevice::ReadWrite))
        qDebug()<<file.errorString();
    QTextStream in(&file);
    /* 读取文件所有数据 */
    QString buf = in.readLine();
    /* 打印出读出的值 */
    //qDebug()<<"buf: "<<buf<<endl;
    file.close();
    if (buf == "1") {
        emit updateLEDButtonText("LED熄灭");
        return true;
    } else {
        emit updateLEDButtonText("LED点亮");
        return false;
    }
}

void LED::setLedState()
{
    /* 在设置LED状态时先读取 */
    bool state = getLedState();

    /* 如果文件不存在，则返回 */
    if (!file.exists())
        return;

    if(!file.open(QIODevice::ReadWrite))
        qDebug()<<file.errorString();

    QByteArray buf[2] = {"0", "1"};

    /* 写0或1 */
    if (state)
        file.write(buf[0]);
    else
        file.write(buf[1]);
    /* 关闭文件 */
    file.close();
    /*重新获取LED的状态 */
    getLedState();
}

